사이트 내 전체검색
PHP
다음 지도 API 관련 좌표 변환처리
로빈
https://cmd.kr/php/955 URL이 복사되었습니다.

본문

다음 지도를 URL로 호출하려면,
이런식으로 호출해주면 지도창이 뜬다,
http://map.daum.net/link/map/업체명,37.5104,127.04247
그런데 실제로 다시  url이 다음과 같이 변경된다.
https://map.kakao.com/?urlX=509388.0&urlY=1114148.0&name=업체명

확인결과 urlX ,Y 는 콩나물맵에서 사용되던 좌표로 변환하여 표시하는듯한다.
일반적인 좌표 WGS84 로 호출해도 다시 변경되니 대략 난감하여, 바로 지정할수 있게 ajax 처리를 하였다.
예제가 부족하여 삽질이 동원되었다.

iframe 형태로 표시하기위해
https://www.unjung.co.kr/map/?urlX=126.73836560379063&urlY=37.730839115485814&name=청암초등 으로 호출하면,

https://map.kakao.com/?urlX=442167&urlY=1174631&urlLevel=3&map_type=TYPE_MAP&map_hybrid=false&name=청암초등 형태로 콩나물좌표로 변환하여  호출한다.
- from 로빈아빠 -


<?php
define('_INDEX_',true);
include_once('./_common.php');
include_once(G5_PATH.'/head.php');
$name=str_replace(',',' ',$name);
//REST API 키
$REST_API_KEY='***';

?>

<iframe id='daum_map' src="" style='width:100%;height:600px' frameborder=0 framespacing=0 marginheight=0 marginwidth=0 scrolling=no vspace=0></iframe>

<script>
var iframe_url='';
var daum_map_x='';
var daum_map_y='';
$.ajax({
url: "https://dapi.kakao.com/v2/local/geo/transcoord.json?x=<?php echo $urlX?>&y=<?php echo $urlY?>&input_coord=WGS84&output_coord=WCONGNAMUL",
headers: { 'Authorization': 'KakaoAK <?php echo $REST_API_KEY?>'},
type: 'GET',
async: false,
cache: false,
dataType: "json",
success: function(data, textStatus) {
//console.log(data.documents[0].x);
daum_map_x=data.documents[0].x;
daum_map_y=data.documents[0].y;
var url='https://map.kakao.com/?urlX='+daum_map_x+'&urlY='+daum_map_y+'&urlLevel=3&map_type=TYPE_MAP&map_hybrid=false&name=<?php echo $name?>';
$('#daum_map').attr('src', url);
console.log(url);
}
});


</script>


<?php
include_once(G5_PATH.'/tail.php');
?>


------------------------------------------
또 다른 작업방법으로는 이방법도 있다.


<iframe id='daum_map' src="" style='width:100%;height:600px' frameborder=0 framespacing=0 marginheight=0 marginwidth=0 scrolling=no vspace=0></iframe>
<?php /*
<script>
var iframe_url='';
var daum_map_x='';
var daum_map_y='';
$.ajax({
url: "https://dapi.kakao.com/v2/local/geo/transcoord.json?x=<?php echo $urlX?>&y=<?php echo $urlY?>&input_coord=WGS84&output_coord=CONGNAMUL",
headers: { 'Authorization': 'KakaoAK <?php echo $REST_API_KEY?>'},
type: 'GET',
async: false,
cache: false,
dataType: "json",
success: function(data, textStatus) {
//console.log(data.documents[0].x);
daum_map_x=data.documents[0].x;
daum_map_y=data.documents[0].y;
var url='https://map.kakao.com/?urlX='+daum_map_x+'&urlY='+daum_map_y+'&urlLevel=3&map_type=TYPE_MAP&map_hybrid=false&name=<?php echo $name?>';
$('#daum_map').attr('src', url);
console.log(url);
}
});


</script>
*/ ?>

<script type="text/javascript" src="//dapi.kakao.com/v2/maps/sdk.js?appkey=<?php echo $board['bo_1']?>&libraries=services"></script>

<script>
var geocoder = new daum.maps.services.Geocoder(); // 좌표계 변환 객체를 생성합니다

// WTM 좌표를 WGS84 좌표계의 좌표로 변환합니다
geocoder.transCoord(<?php echo $urlX?>,<?php echo $urlY?>, transCoordCB, {
    input_coord: daum.maps.services.Coords.WGS84, // 변환을 위해 입력한 좌표계 입니다
    output_coord: daum.maps.services.Coords.WCONGNAMUL // 변환 결과로 받을 좌표계 입니다
});

// 좌표 변환 결과를 받아서 처리할 콜백함수 입니다.
function transCoordCB(result, status) {

    // 정상적으로 검색이 완료됐으면
    if (status === daum.maps.services.Status.OK) {
console.log(result[0].x);
console.log(result[0].y);

var url='https://map.kakao.com/?urlX='+result[0].x+'&urlY='+result[0].y+'&urlLevel=3&map_type=TYPE_MAP&map_hybrid=false&name=<?php echo $name?>';
$('#daum_map').attr('src', url);
console.log(url);

}
}
</script>

댓글목록

등록된 댓글이 없습니다.

PHP
871 (1/18P)

Search

Copyright © Cmd 명령어 18.221.68.196